Combined activities history on a device

ABSTRACT

This application is directed to performing a plurality of activities each of which is performed in a respective application with content associated with a content type selected from a group consisting of television programming, online content, on-device application, information views, and other content types. Each activity is associated with a timestamp, and described using a predefined format covering an action and content associated with the action. Each of the plurality of activities is then logged into an activities log in accordance with the predefined format. A plurality of user selectable affordances are displayed concurrently in a home screen on a display of the client device. Each of the affordances is associated with one of the plurality of activities performed with associated content, and the plurality of affordances includes at least two affordances associated with two distinct activities of the plurality of activities performed by two distinct applications.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.15/860,538, filed Jan. 2, 2018, which is a continuation of U.S. patentapplication Ser. No. 14/349,642, filed Apr. 3, 2014, which is a U.S.National Stage Application filed under 35 U.S.C. § 371 of InternationalPatent Application No. PCT/US2012/058475 filed Oct. 2, 2012, whichclaims the benefit of U.S. Provisional Patent Application No. 61/543,294filed Oct. 4, 2011, each of which is hereby incorporated by reference inits entirety.

BACKGROUND

The disclosed implementations relate generally to device management.

Devices today are designed to handle activities with respect to manydifferent types of content. For example, a device may allow users towatch television channels, browse web pages, and run applications.Typically, activities on distinct content types are logged in separatehistories, in different formats, and the separate histories aredisplayed to the user separately. However, such separation does not givethe user a holistic view of the user's usage of the device and contentconsumption activity.

SUMMARY

According to some implementations, a method is performed at a clientdevice having one or more processors and memory storing one or moreprograms executed by the device. The method includes: performing a firstactivity with content associated with a first content type selected fromthe group consisting of television programming, online content,on-device application, search queries, information views, and othercontent types described using a predefined format, wherein thepredefined format includes an action specification and a contentspecification; logging the first activity in accordance with thepredefined format; performing a second activity with content associatedwith a second content type selected from the group consisting oftelevision programming, online content, on-device applications, searchqueries, information views, and other content types described using thepredefined format, the second content type being distinct from the firstcontent type; and logging the second activity in accordance with thepredefined format.

According to some implementations, a system includes one or moreprocessing units; and memory storing one or more programs to be executedby the one or more processing units. The one or more programs comprisinginstructions for: performing a first activity with content associatedwith a first content type selected from the group consisting oftelevision programming, online content, on-device application, searchqueries, information views, and other content types described using apredefined format, wherein the predefined format includes an actionspecification and a content specification; logging the first activity inaccordance with the predefined format; performing a second activity withcontent associated with a second content type selected from the groupconsisting of television programming, online content, on-deviceapplications, search queries, information views, and other content typesdescribed using the predefined format, the second content type beingdistinct from the first content type; and logging the second activity inaccordance with the predefined format.

According to some implementations, a non-transitory computer readablestorage medium stores one or more programs configured for execution by acomputer. The one or more programs comprising instructions for:performing a first activity with content associated with a first contenttype selected from the group consisting of television programming,online content, on-device application, search queries, informationviews, and other content types described using a predefined format,wherein the predefined format includes an action specification and acontent specification; logging the first activity in accordance with thepredefined format; performing a second activity with content associatedwith a second content type selected from the group consisting oftelevision programming, online content, on-device applications, searchqueries, information views, and other content types described using thepredefined format, the second content type being distinct from the firstcontent type; and logging the second activity in accordance with thepredefined format.

According to some implementations, a method is performed at a clientdevice having one or more processors and memory storing one or moreprograms executed by the device. The method includes: retrieving from alog a first set of activities associated with content of a first contenttype, the first content type selected from the group consisting oftelevision programming, online content, on-device applications, searchqueries, information views, and other content types described using apredefined format, wherein the predefined format includes an actionspecification and a content specification, and a second set ofactivities associated with content of a second content type distinctfrom the first content type, the second content type selected from thegroup consisting of television programming, online content, on-deviceapplications, search queries, information views, and other content typesdescribed using the predefined format, wherein the first set ofactivities and the second set of activities are logged in accordancewith the predefined format; and displaying information based on thefirst set of activities and the second set of activities concurrently.

According to some implementations, a system includes one or moreprocessing units; and memory storing one or more programs to be executedby the one or more processing units. The one or more programs comprisinginstructions for: retrieving from a log a first set of activitiesassociated with content of a first content type, the first content typeselected from the group consisting of television programming, onlinecontent, on-device applications, search queries, information views, andother content types described using a predefined format, wherein thepredefined format includes an action specification and a contentspecification, and a second set of activities associated with content ofa second content type distinct from the first content type, the secondcontent type selected from the group consisting of televisionprogramming, online content, on-device applications, search queries,information views, and other content types described using thepredefined format, wherein the first set of activities and the secondset of activities are logged in accordance with the predefined format;and displaying information based on the first set of activities and thesecond set of activities concurrently.

According to some implementations, a non-transitory computer readablestorage medium stores one or more programs configured for execution by acomputer. The one or more programs comprising instructions for:retrieving from a log a first set of activities associated with contentof a first content type, the first content type selected from the groupconsisting of television programming, online content, on-deviceapplications, search queries, information views, and other content typesdescribed using a predefined format, wherein the predefined formatincludes an action specification and a content specification, and asecond set of activities associated with content of a second contenttype distinct from the first content type, the second content typeselected from the group consisting of television programming, onlinecontent, on-device applications, search queries, information views, andother content types described using the predefined format, wherein thefirst set of activities and the second set of activities are logged inaccordance with the predefined format; and displaying information basedon the first set of activities and the second set of activitiesconcurrently.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating a content consumptionenvironment, according to some implementations.

FIG. 2 is a block diagram illustrating a client device, according tosome implementations.

FIG. 3 is a block diagram illustrating interaction between modulesassociated with content activities and an activities logging module,according to some implementations.

FIGS. 4A and 4B are diagrams illustrating example data structures for anactivities log, according to some implementations.

FIGS. 5A-5D are schematic diagrams illustrating example screenshots ofcontent activities information being displayed, according to someimplementations.

FIG. 6 is a flow diagram illustrating a process for logging activitiesat a device, according to some implementations.

FIGS. 7A-7B are flow diagrams illustrating a process for displayinginformation based on logged activities at a device, according to someimplementations

DETAILED DESCRIPTION

In some implementations, activities on different types of content on adevice, such as viewing a web page or TV channel, executing anapplication, viewing information accessed from a home screen, viewing asettings user interface, issuing a search query, or streaming contentfrom another device, may be logged in a common format and processed as acommon activities log or history. Activities associated with differenttypes of content, such as television channel viewing, web page browsing,applications activity, search queries, accesses of particular userinterfaces, content streaming, and presentation of information on thehome screen, may be logged in the same predefined format, such as aUniversal Resource Identifier (URI) based format. The logged activitiesmay be analyzed and displayed together.

FIG. 1 is a block diagram illustrating a content consumptionenvironment, according to some implementations. The content consumptionenvironment 100 includes a client device 102. The client device 102 iscommunicatively coupled to a video content system 104 and one or morecontent hosts 106 by one or more communications networks 108 (e.g., theInternet). In some implementations, the client device 102 is a set-topbox, desktop computer, laptop computer, smartphone, feature phone,tablet computer, game console, television, or media player device. Insome implementations, the client device includes a display 206 on whichvideo content received from video content system 104, as well as userinterfaces of the client device 102 and other content (e.g., web pages,etc.) can be presented. In such implementations, features of clientdevices 102 described herein can be implemented in a single device or inmultiple coordinated devices. A video content system 104 transmits orbroadcasts video content (e.g., television programming) to the clientdevice 102 through the network(s) 108. Video content transmitted by thevideo content system 104 may be transmitted in channels. Each channelhas a set of video content (e.g., movies, video clips, video podcasts,music videos, television shows). In some implementations, the videocontent system 104 is a cable television system, satellite televisionsystem, broadcast television system, a system that delivers televisionprogramming through fiber optic networks, or an Internet Protocoltelevision (IPTV) system.

Content hosts 106 host content, such as web pages and other documents,applications, online video, audio, or other information or data. Theclient device 102 may communicate, through the network(s) 108, with acontent host 106 to transmit data (e.g., requests for content) andreceive content.

In some implementations, the network(s) 108 include one or more of fiberoptic cable networks, coaxial cable networks, satellite networks,copper-wire based networks (e.g., digital subscriber line (DSL), phoneline, WAN, LAN, the Internet, etc.), wireless networks (e.g., Wi-Fi,broadcast), or any mix or combination of the above.

In some implementations, client devices 102 are coupled to the networks108 using multiple connections. For example, a client device 102 mayconnect to the networks 108 using a satellite connection and an Ethernetconnection. The satellite connection may be used to receive content fromthe video content system 104 (e.g., where the video content system 104is a satellite television system), and the Ethernet connection is usedto receive content from and transmit data to content hosts 106. Asanother example, the client device 102 may connect to the networks 108using both a wireless (e.g., Wi-Fi) connection and an optical fiberconnection.

In some implementations, the client device 102 may access and presentcontent (e.g., video, music, photos) from another device 110 throughnetwork(s) 108). The device 110 may, for example, be a digital mediaserver. The device 110 may be another device in the same local networkas the client device 102, or a remote device. In some implementations,client device 102 and the device 110 are Digital Living Network Alliance(DLNA) certified devices.

FIG. 2 is block diagram illustrating a client device, according to someimplementations. A client device 102 typically includes one or moreprocessing units (CPU's) 202, one or more network or othercommunications interfaces 208, memory 204, and one or more communicationbuses 210 for interconnecting these components. In some implementations,the communications interfaces 208 include one or more tuners 209 fortuning to channels in content signals transmitted from video contentsystem 104. The client device 102 also includes a display 206. In someimplementations, the display 206 is integrated into the client device102. For example, the client device 102 may be a television configuredto be able to access the Internet and run applications. In some otherimplementations, the display 206 is a distinct device from the clientdevice 102 and the client device 102 outputs to the display 206 by awired or wireless connection. For example, the client device 102 may bea set-top box coupled to a display (e.g., a television).

Memory 204 includes high-speed random access memory, such as DRAM, SRAM,DDR RAM or other random access solid state memory devices; and mayinclude non-volatile memory, such as one or more magnetic disk storagedevices, optical disk storage devices, flash memory devices, or othernon-volatile solid state storage devices. Memory 304 may optionallyinclude one or more storage devices remotely located from the processingunit(s) 302. Memory 204, or alternately the non-volatile memorydevice(s) within memory 204, comprises a non-transitory computerreadable storage medium. In some implementations, memory 204 or thecomputer readable storage medium of memory 204 stores the followingprograms, modules and data structures, or a subset thereof:

-   -   an operating system 212 that includes procedures for handling        various basic system services and for performing hardware        dependent tasks;    -   a network communication module 214 that is used for connecting        the client device 102 to other or systems (e.g., video content        system 104, content hosts 106) via the one or more communication        network interfaces 208 (wired or wireless) and one or more        communication networks 108, such as the Internet, other wide        area networks, local area networks, metropolitan area networks,        cable televisions systems, satellite television systems, IPTV        systems, and so on;    -   a video content module 216 for tuning to specified channels in        video content signals received from the video content system,        processing (e.g., decoding) the video content signals, and        displaying video content decoded from the video content signals;    -   a web browser module 218 (which, in some implementations, is one        of the applications 220) for rendering and displaying web pages        received from content hosts 106;    -   one or more applications 220 for performing a variety of        operations and accessing various content, including applications        that primarily execute on the client device 102, such as games        and office applications, and third party applications that        access remote media content and present that content for local        users, such as a remote media streaming application;    -   an activities logging module 224 for logging activities on the        client device 102 into an activities log 230;    -   an activities log display module 226 for displaying information        based on the activities log 230;    -   an activities analytics module 228 for performing analytics on        the activities log 230;    -   the activities log 230, which stores the log data of activities        logged by activities logging module 224; and    -   a home screen module 238 for presenting content and information        on a home screen interface of the client device 102; and    -   a search module 240 for searching for content stored on the        client device 102, content that is available on connected        devices (e.g., device 110), content listed in television        programming guides, and so on, including processing queries        received in a quick search bar (e.g. quick search bar 503, FIGS.        5A-5C).

The activities log 230 further includes display name mappings 232,grouping keys 234, and thumbnails 236. Display name mappings 232 mapcontent that are identified in the activities log 230 to user-friendlynames for displaying to users. Grouping keys 234 specify one or morekeys based on which logged activities in the activities log 230 may begrouped together for display and analytics purposes. Thumbnails 236include thumbnail images that may be associated with activities orgroups of activities in the activities log 230 and displayed wheninformation corresponding to the associated activities or groups ofactivities are displayed to users.

FIG. 2 is intended more as functional descriptions of the variousfeatures which may be present in a device than as a structural schematicof the implementations described herein. In practice, and as recognizedby those of ordinary skill in the art, items shown separately could becombined and some items could be separated.

FIG. 3 is a block diagram illustrating interaction between modulesassociated with content activities and an activities logging module,according to some implementations. At the client device 102, theactivities logging module 224 logs activities performed by othermodules, e.g., the video content module 216, the web browser module 218,and applications 220.

An activity performed by a module may be reported to the activitieslogging module 224 in a message sent from the module to the activitieslogging module 224. In some implementations, the messages sent to theactivities logging module 224 by modules performing activities areintent messages. An example of intent messages is intent messages in theANDROID™ operating system, where an intent is an abstract description ofan operation to be performed. It should be appreciated, however, thatother ways of reporting and logging activities are possible, as long asthe activities are reported and logged in accordance with the sameformat regardless of the type of content and the form of the action.

A message reporting an activity (e.g., an intent message) sent from amodule to the activities logging module 224 may include an actioninvolved in the activity, the content acted upon, and a timestamp of theactivity. The messages sent by the various modules are formatted in acommon format. In some implementations, the common format is based onthe Uniform Resource Identifier (URI) format; the action and the contentare specified in the message in URI syntax. For example, in an intentmessage, the action may be expressed as the string “intent://[action]”where the “[action]” string (e.g., “view,” “main,” “edit,” “send,” etc.)specifies the action, and the content may be expressed as“[type]://[path]” where the “[type]” string specifies the content type(e.g., “tv” for television channels, “app” for applications, “http” forweb pages accessed using the Hypertext Transfer Protocol (HTTP), “home”for information views displayed on the home screen, “qs” for searchesperformed using a quick search bar), and the “[path]” string identifiesthe content (e.g., “www.abcde.com/customerhelp/shipping.html”,“channel/xyztv”, “app://unitconverter”, “home://whatsnew”,“search://search?q=hockey”). In some implementations, the“[type]://[path]” string for a web page is the same as the UniformResource Locator (URL) address of the web page; for content that has aURL (e.g., web pages, other online documents), the URL is used for thecontent string.

The video content module 216 may send an intent message 302 to theactivities logging module 224. The intent message 302 in FIG. 3corresponds to a tuning, by the video content module 216, to a specifiedchannel (to have video content on the specified channel displayed). Theintent message 302 includes an action to view a channel (i.e., tune tothe channel) (“intent://view”), the viewed channel(“tv://channel/xyztv”), and a timestamp of the action.

The intent message 304, sent by the web browser module 218 to theactivities logging module 224, corresponds to a view of a web page. Theintent message 304 includes an action to view a web page(“intent://view”), an address (e.g., the URL) of the viewed web page(“http://www.abcde.com”), and a timestamp of the action.

The intent message 306, sent by an application 220 to the activitieslogging module 224, corresponds to an access of a page or interface inthe application. Using the example of a unit converter application, theintent message 306 includes an action to open a page or interface(“intent://main”), an identifier of the application and the opened page(“app://unitconverter/length”), and a timestamp of the action.

The intent message 308, sent by the home screen module 238 to theactivities logging module 224, corresponds to an information view(“What's On”) in the home screen interface of the client device 102. Theintent message 308 includes an action to display the “What's On” view(“intent://main”), the information view being displayed(“home://whatson”), and a timestamp of the action.

The intent message 310, sent by the search module 240 to the activitieslogging module 224, corresponds to a search in the quick search bar 503(the query is “hockey”). The intent message 310 includes an action toperform the search and to present the search results (“intent://main”),the query (“search://search?q=hockey”), and a timestamp of the action.

While FIG. 3 describes messages sent to the activities logging module224 by the video content module 216, the web browser module 218, orapplications 220, other modules in the client device 102 also may sendmessages reporting activities to the activities logging module 224 forlogging into the activities log 230. For example, the operating system212 (and sub-modules of the operating system 212) may send messages tothe activities logging module 224.

The activities logging module 224 receives messages reporting activitiessent from various modules (e.g., the video content module 216, webbrowser module 218, applications 220) and stores the information inthese messages in the activities log 230. FIGS. 4A and 4B illustrateexample data structures for the activities log 230. In FIG. 4A, theactivities log 230 stores, for an entry 402 corresponding to a reportedactivity, the action 404, the content 406 acted upon, and the timestamp408 of the action. The action 404 stores the “[action]” string extractedfrom the “intent://[action]” string in a message. In someimplementations, the action 404 store the entire “intent://[action]”string as is. The content string 406 stores the content string(“[type]://[path]”) that is included in the message as is. In someimplementations, instead of storing the action and the content asseparate fields 404 and 406, respectively, the entire message for anactivity (e.g., intent message 302, 304, 306, 308, or 310), save thetimestamp, is stored as is in a single field, and the correspondingtimestamp is stored in a separate field (e.g., timestamp 408).

The activities log 230 may log activities that are associated withcontent items that are not exactly the same item but are neverthelessrelated. For example, the activities log 230 may log views of differentweb pages within the same domain. As an example, activities 402-1 thru402-4 correspond to activities associated with web pages in the“abcde.com” domain. Other examples of related content include differentpages or interfaces within the same application, an interface (e.g.,settings) and its sub-interfaces within the operating system, ortelevision programs from the same channel or network viewed on theclient device 102. Activities corresponding to related content may begrouped together for display and/or analytics purposes. For example,views of web pages under the same domain may be grouped together anddisplayed as one. In some implementations, when activities associatedwith related content are grouped, the count of activities for the groupdoes not reduce to one, but is the sum of the number of activities thatare grouped together.

In some implementations, content referenced in the activity log 230 maybe mapped to user-friendly display names. A display name may bedisplayed in place of a content string (i.e., “[type]://[path]”) that isstored in the activity log 230, as the content string may be confusingto the user and overly long. Further, when activities associated withrelated content are grouped together, the display name may be displayedto represent the group of activities. FIG. 4B illustrates examples ofdisplay name mappings 232 from content strings 412 to display names 414.Mappings 410-1 and 410-2 map content strings under specified domains tospecified names. For example, Mapping 410-1 maps URLs for pages in the“abcde.com” domain to the name “ABCDE Store.” Mapping 410-3 maps a URIcorresponding to a television channel to the name of the televisionchannel. Mapping 410-4 maps a URI corresponding to an application andinterfaces in the application to the name of the application. Mapping410-5 maps an interface and its sub-interfaces in the operating system212 (e.g., the settings interface and its sub-interfaces) to the name“Settings.” Mappings 410-6 maps a view on the home screen to the name“Home.” Mappings 410-7 maps a search query the name “Search.”

In some implementations, content strings 412 and display names 414 arealso associated with respective thumbnail images 236 that may bedisplayed whenever information corresponding to a content string and/orthe display name is displayed. Thumbnail paths 416 identify thethumbnail 236 corresponding to respective content strings 412 anddisplay names 414.

As described above, activities associated with related content may begrouped together or aggregated into one for display and analyticspurposes. Grouping keys 234 may be specified to identify the keys onwhich content may be considered to be related. A key specification 422in the grouping keys 234 specifies a key for a respective content type418. For example, key specification 422-1 specifies that for web pages(content strings that start with “http://”), the key is the domain nameportion that includes the top level domain (TLD) (either a generic TLDor a country code TLD), optionally a country code second level domain(ccTLD) (for domains where the TLD is a country code TLD), and then thefirst subdomain string after the TLD and ccSLD. Thus, for example, inFIG. 4A, the content strings 406 in activities 402-1 thru 402-4 maygrouped into one because they share the same domain (“abcde.com”), butthey would not be grouped with, for example, activities associated withcontent in the domain “abcde.co.jp”.

Key specification 422-2 specifies that for television networks (contentstrings that start with “tv://”), the key is the string after“tv://channel/”. Key specification 422-3 specifies that for applications(content strings that start with “app://”), the key is the string in thefirst level of the path after the string “app://”. Key specification422-4 specifies that for operating system user interfaces (contentstrings that start with “os://”), the key is the string in the firstlevel of the path after the string “os://”. Key specification 422-5specifies that for information views on the home screen (content stringsthat start with “home://”), the key is the string after the string“home://”. Key specification 422-6 specifies that for searches (contentstrings that start with “search://”), the key is the string after thestring “search://”.

Analytics may be performed on the activities logged in activities log230. Examples of analytics that may be performed includes analyzing theactivities to determine overall content activity frequency on the clientdevice 102, content activity frequency by time of day (so as to be ableto make content suggestions based on time of day), content activity bycontent, and so on.

In some implementations, the data in the activities log 230 may bepresented to users in some form (e.g., as described below with referenceto FIGS. 5A-5D), analyzed by the client device 102 to suggest content tousers (e.g., based on the analytics performed on the data in the log),and shared with third-party applications (e.g., applications 220), onthe client device 102, that makes uses of content activity data.

Information corresponding to the activities in the activities log 230 ,which includes activities associated with various types of content, maybe displayed to the user. FIGS. 5A-5D illustrate example screenshots ofcontent activities information being displayed. FIG. 5A illustrates ahome screen 500 of the client device 102, displayed on the display 206.The home screen 500 includes a content bar 501 and a quick search bar503. A user may enter a query into the quick search bar 503 to makesimple searches for content. The content bar 501 includes links tovarious information displays, including, for example, “Most Visited,”“Recents,” “History,” and “What's On.” A selection of an informationdisplay from the content bar 501 may be reported as an activity to theactivities logging module 224 by the home screen module 238 (FIG. 3).

In FIG. 5B, an activities history 502 is displayed in the home screen500 on the display 206 of a client device 102 (e.g., in response to theuser selecting the “History” view in the content bar 501). Theactivities history 502 may be a chronological listing of activities onthe client device 102, similar to a web browser history. The activitieshistory 502 may include web page activity, application activity,television activity, operating system activity, search activity, andhome screen activity in one listing, without separation (in someimplementations, they may be displayed separately in accordance withuser input).

In FIG. 5C, a set of recently accessed or visited content 504 isdisplayed in the home screen 500 on the display 206 of the client device102 (e.g., in response to the user selecting the “Recents” view in thecontent bar 501). The recently accessed content 504 lists content thathave been recently accessed (i.e., content associated with recentactivity) on the client device 102 within a predefined time (e.g., thepast week, the past month, etc.). The content, which includes varioustypes such as television content, web pages, searches, applications, andso on, may be displayed in the recently accessed content 504 withthumbnails, if available, and a time of last access. In someimplementations, a content item (e.g., “ABCDE Store”) displayed in therecently accessed content 504 corresponds to a grouping or aggregationof multiple activities associated with related content (e.g., web pageswithin the same domain) and represents the most recent one of thosegrouped or aggregated activities.

In FIG. 5D, a set of most accessed or visited content 506 is displayedin the home screen 500 on the display 206 of the client device 102(e.g., in response to the user selecting the “Most Visited” view in thecontent bar 501). The most accessed content 506 lists content that havebeen most accessed on the client device 102 (i.e., content associatedwith the most activity) over the life of the client device 102 or over adefined period of time (e.g., the past month, the past two months,etc.). The content may be displayed in the most accessed content 506with thumbnails, if available. In some implementations, a content item(e.g., “ABCDE Store”) displayed in the most visited content 506corresponds to a grouping or aggregation of multiple activitiesassociated with related content (e.g., web pages within the samedomain). In some implementations, how recent the last access to thecontent is also taken into account; frequently accessed content that waslast accessed a long time ago (e.g., at a time past a predefined timethreshold) may be omitted from display in favor of more recentlyaccessed, frequently accessed content.

In some implementations, whether activities are grouped or aggregatedfor display purposes depend on the view in which information about theactivities are displayed. For example, in the activities history 502,activities are not grouped or aggregated; each activity is an individualentry in the history 502. In the recently accessed content 504 or themost accessed content 506, activities may be grouped or aggregated.

In some implementations, messages reporting activities may be formattednot in URI syntax but in other formats. Such messages may be modifiedinto URI syntax by the activities logging module 224 and logged in URIsyntax in activities log 230.

FIG. 6 is a flow diagram illustrating a process 600 for loggingactivities at a device, according to some implementations. Each of theoperations shown in FIG. 6 may correspond to instructions stored in acomputer memory or computer readable storage medium. In someimplementations, process 600 may be implemented at a client device 102.

The device (e.g., client device 102) performs (602) a first activitywith content associated with a first content type selected from thegroup consisting of television programming, online content, on-deviceapplications, search queries, information views, and other content typesdescribed using a predefined format. The activity may be associated withany of various content types that may be described using a predefinedformat, including television channels, online content items (e.g., webpages), on-device applications, search queries, information views, andother content types. Examples of activities with content associated witha content type include opening, launching, or displaying a content itemof the content type, and performing a search and displaying the results,and displaying specified information views in a home screen of theclient device 102. The activity is reported to an activities loggingmodule 224 in the predefined format (e.g., in an intent message with adefined syntax), which includes an action specification, for the actionin the activity, and a content specification, for the content of thecontent type with which the activity is associated.

In some implementations, the action specification and the contentspecification are formatted in Uniform Resource Identifier format (604).The action specification and the content specification both uses URIsyntax to specify the action in an activity and to specify the contentin the activity, whatever the action and whatever the type of contentmay be. For example, in intent messages reporting activities (e.g.,messages 302, 304, 306, 308, or 310), the action and the content arespecified in URI syntax.

The device logs (608) the first activity in accordance with thepredefined format. The first activity is logged by the activitieslogging module 224 in the predefined format, whichever content type isassociated with the content in the activity. Thus, for example,activities involving displaying a television channel, activitiesinvolving displaying web pages or opening applications, and so forth arelogged in the same format. The content is logged in URI syntax. Theaction may be logged in URI syntax or extracted from the messagereporting the action in URI syntax and logged in the extracted form.

In some implementations, the first content type is online content (606).Examples of online content include web pages, online video clips, and soon. In some implementations, the first activity includes displaying anonline content item (e.g., displaying a web page or online video clip).

In some implementations, the device maps the first activity to a firstdisplay name based on a domain of an online content item associated withthe first activity. When information corresponding to activities in theactivities log 230 is displayed (e.g., in a recents view 504 or a mostvisited view 506), an activity may be represented by a user-friendlydisplay name. The display name may be mapped to the activity based onthe domain of the online content item in the activity. For example, ifthe activity is displaying a web page (i.e., the user views the webpage), a name based on the domain may be used to represent the activityeven if the actual content specification includes additional parametersor metadata.

In some implementations, the device logs multiple activities, each ofwhich is respectively associated with an online content item, therespective associated online content items having a common domain; andgroups the multiple activities together based on the common domain. Theactivities log 230 may include multiple activities, each associated witha respective online content item, where the respective online contentitems have a common domain (e.g., different web pages within the samedomain, as in activities 402-1 thru 402-4, FIG. 4A). The activities withthe online content items having the common domain may be groupedtogether based on the common domain, e.g., for display or analyticspurposes. For example, in the most visited view 506, activities with webpages in the same domain may be grouped together and displayed as oneinstead of separately.

The device performs (610) a second activity with content associated witha second content type selected from the group consisting of televisionprogramming, online content, on-device applications, search queries,information views, and other content types described using thepredefined format, where the second content type is distinct from thefirst content type. The activity may be associated with any of variouscontent types that may be described using the predefined format,including television channels, online content items (e.g., web pages),on-device applications, search queries, information views, and othercontent types. Examples of activities with content associated with acontent type include opening, launching, or displaying a content item ofthe content type, and performing a search and displaying the results,and displaying specified information views in a home screen of theclient device 102. The activity is reported to an activities loggingmodule 224 in the predefined format (e.g., in an intent message with adefined syntax.

The device logs (614) the second activity in accordance with thepredefined format. The second activity is logged by the activitieslogging module 224 in the predefined format, whichever content type isassociated with the content in the activity. The content is logged inURI syntax. The action may be logged in URI syntax or extracted from themessage reporting the action in URI syntax and logged in the extractedform. Thus, activities with content of different types may be reportedand logged in the same format.

In some implementations, the second content type is televisionprogramming (612). Examples of television programming include televisionchannels and the programs in those channels. In some implementations,the second activity includes displaying a television channel (andwhatever program is on the channel at the time of the activity).

In some implementations, the device maps the second activity to a seconddisplay name based on the television channel associated with the secondactivity. For example, if the activity is displaying a televisionchannel or a program on that channel (i.e., the user views thechannel/program), a name based on the television channel (e.g., the nameof the network on that channel) may be used to represent the activity.

In some implementations, the device logs multiple activities, each ofwhich is respectively associated with the same television channel; andgroups the multiple activities together based on the common televisionchannel. The activities log 230 may include multiple activities, eachassociated with a respective television programming from the sametelevision channel. The activities with the television programming fromthe same television channel may be grouped together based on the commonchannel, e.g., for display or analytics purposes. For example, in themost visited view 506, activities with television programming from thesame channel may be grouped together and displayed as one instead ofseparately.

The device performs (616) a third activity with content associated witha third content type selected from the group consisting of televisionprogramming, online content, on-device applications, search queries,information views, and other content types described using thepredefined format, where the third content type is distinct from thefirst content type and the second content type. The activity may beassociated with any of various content types that may be described usingthe predefined format, including television channels, online contentitems (e.g., web pages), on-device applications, search queries,information views, and other content types. Examples of activities withcontent associated with a content type include opening, launching, ordisplaying a content item of the content type, and performing a searchand displaying the results, and displaying specified information viewsin a home screen of the client device 102. The activity is reported toan activities logging module 224 in the predefined format (e.g., in anintent message with a defined syntax.

The device logs (620) the third activity in accordance with thepredefined format. The third activity is logged by the activitieslogging module 224 in the predefined format, whichever content type isassociated with the content in the activity. The content is logged inURI syntax. The action may be logged in URI syntax or extracted from themessage reporting the action in URI syntax and logged in the extractedform. Thus, activities with content of different types may be reportedand logged in the same format.

In some implementations, the third content type is on-device application(618). In some implementations, the third activity includes activating(e.g., opening or launching) an on-device application. Other examples ofactivity with an on-device application include opening or displaying aninterface within the application and viewing specific data in theapplication.

FIG. 7 is a flow diagram illustrating a process 700 for displayinginformation based on logged activities at a device, according to someimplementations. Each of the operations shown in FIG. 7 may correspondto instructions stored in a computer memory or computer readable storagemedium. In some implementations, process 700 may be implemented at aclient device 102.

The device retrieves (702) from a log a first set of activitiesassociated with content of a first content type, the first content typeselected from the group consisting of television programming, onlinecontent, on-device applications, search queries, information views, andother content types described using a predefined format, and a secondset of activities associated with content of a second content typedistinct from the first content type, the second content type selectedfrom the group consisting of television programming, online content,on-device applications, search queries, information views, and othercontent types described using the predefined format. The predefinedformat includes an action specification and a content specification. Thefirst set of activities and the second set of activities are logged inaccordance with the predefined format. The device retrieves log entriesfor activities with content of a first type and activities with contentof a second type different from the first type. For example, the devicemay retrieve from activities log 230 in FIG. 4A activities 402-1 thru402-4 and activity 402-7. Activities 402-1 thru 402-4 are associatedwith online content and activity 402-7 is associated with televisionprogramming. The retrieved activities were reported to the activitieslogging module in a predefined format, e.g., an action specification anda content specification. In some implementations, the action and thecontent specification are formatted in URI format (704).

The device displays (710) information based on the first set ofactivities and the second set of activities concurrently. For example,in an activities history 502 (FIG. 5B) that is displayed, a set ofactivities involving online content and a set of activities involvingtelevision programming are displayed together and concurrently. Asanother example, recently accessed content 504 or most accessed content506 that includes content of different types, derived from the first setof activities and the second set of activities, may be displayed.

In some implementations, the first content type is online content (706).In some implementations, the first set of activities includes a subsetof activities that are associated with respective online content itemshaving a common domain, and displaying information based on the firstset of activities and the second set of entries concurrently includesdisplaying information corresponding to the subset of events groupedtogether based on the common domain. For example, activities associatedwith web pages in a common domain (e.g., activities 402-1 thru 402-4,FIG. 4A), may be grouped together based on the common domain andinformation based on the group may be displayed (e.g., if the commondomain is most visited, a representation of the group is included in themost visited content 506).

In some implementations, the second content type is televisionprogramming (708). In some implementations, the second set of activitiesincludes a subset of activities that are associated with a commontelevision channel, and displaying information based on the first set ofactivities and the second set of activities concurrently includesdisplaying information corresponding to the subset of activities groupedtogether based on the common television channel. For example, activitiesassociated with television programming from a common television channel,may be grouped together based on the common channel and informationbased on the group may be displayed (e.g., if the common channel is mostwatched, a representation of the group is included in the most visitedcontent 506).

In some implementations, displaying information based on the first setof activities and the second set of activities concurrently includesdisplaying a chronologically ordered list of the first set of activitiesand the second set of activities (712). For example, a chronologicallyordered history 502 of activities may be displayed. The chronologicallyordered history 502 may include activities associated with differentcontent types, such as activities associated with online content,activities associated with television programming, and so on.

In some implementations, displaying information based on the first setof activities and the second set of activities concurrently includesdisplaying a most recents list that includes a predefined number ofcontent items associated with the most recent activities amongst thefirst set of activities and the second set of activities (714). Forexample, a view displaying recently accessed content 504 may bedisplayed. The recently accessed content 504 may include contentaccessed by the most recent activity.

In some implementations, displaying information based on the first setof activities and the second set of activities concurrently includesdisplaying a most frequent list that includes a predefined number ofcontent items associated with the most activities amongst the first setof activities and the second set of activities (716). For example, aview displaying most accessed content 506 may be displayed. The mostaccessed content 506 may include content most frequently accessed on theclient device 102. In some implementations, how recent the last accessto the content is also taken into account when displaying the mostaccessed content; a frequently accessed content that was last accessedat a time past a predefined time threshold may be omitted from display,for example.

In some implementations, the device retrieves (718) from a log a thirdset of activities associated with content of a third content typedistinct from the first content type and the second content type,wherein the third set of entries is logged in accordance with thepredefined format, and displays (724) information based on the first setof activities and the second set of activities and the third set ofactivities concurrently. In some implementations, the third content typeis on-device application (722).

It will also be understood that, although the terms first, second, etc.may be used herein to describe various elements, these elements shouldnot be limited by these terms. These terms are only used to distinguishone element from another. For example, a first contact could be termed asecond contact, and, similarly, a second contact could be termed a firstcontact, without departing from the scope of the present invention. Thefirst contact and the second contact are both contacts, but they are notthe same contact.

The terminology used in the description of the invention herein is forthe purpose of describing particular implementations only and is notintended to be limiting of the invention. As used in the description ofthe invention and the appended claims, the singular forms “a,” “an,” and“the” are intended to include the plural forms as well, unless thecontext clearly indicates otherwise. It will also be understood that theterm “and/or” as used herein refers to and encompasses any and allpossible combinations of one or more of the associated listed items. Itwill be further understood that the terms “comprises” and/or“comprising,” when used in this specification, specify the presence ofstated features, integers, steps, operations, elements, and/orcomponents, but do not preclude the presence or addition of one or moreother features, integers, steps, operations, elements, components,and/or groups thereof.

As used herein, the term “if” may be construed to mean “when” or “upon”or “in response to determining” or “in response to detecting,” dependingon the context. Similarly, the phrase “if it is determined” or “if (astated condition or event) is detected” may be construed to mean “upondetermining” or “in response to determining” or “upon detecting (thestated condition or event)” or “in response to detecting (the statedcondition or event),” depending on the context.

Although some of various drawings illustrate a number of logical stagesin a particular order, stages which are not order dependent may bereordered and other stages may be combined or broken out. While somereordering or other groupings are specifically mentioned, others will beobvious to those of ordinary skill in the art and so do not present anexhaustive list of alternatives. Moreover, it should be recognized thatthe stages could be implemented in hardware, firmware, software or anycombination thereof.

Reference has been made in detail to implementations, examples of whichare illustrated in the accompanying drawings. In the above detaileddescription, numerous specific details are set forth in order to providea thorough understanding of the present invention. However, it will beapparent to one of ordinary skill in the art that the present inventionmay be practiced without these specific details. In other instances,well-known methods, procedures, components, circuits, and networks havenot been described in detail so as not to unnecessarily obscure aspectsof the implementations.

The foregoing description, for purpose of explanation, has beendescribed with reference to specific implementations. Theimplementations were chosen and described in order to best explain theprinciples of the invention and its practical applications, to therebyenable others skilled in the art to best utilize the invention andvarious implementations with various modifications as are suited to theparticular uses contemplated. However, the illustrative discussionsabove are not intended to be exhaustive or to limit the invention to theprecise forms disclosed. Many modifications and variations are possiblein view of the above teachings.

What is claimed is:
 1. A method of combining activity histories,comprising: performing a plurality of activities, each of the pluralityof activities being performed in a respective application with contentassociated with a content type, wherein each activity is associated witha timestamp and wherein each activity is described using a formatincluding an action specification string specifying an action and acontent specification string specifying content associated with theaction; for each of the plurality of activities performed by differentapplications, formatting the action specification string and the contentspecification string according to a data structure format acrossdifferent content types of the group, wherein the action specificationstring includes (i) an intent message that specifies an activity fromthe plurality of activities and (ii) an action string that specifies theaction and wherein the content specification string includes (i) a typestring that specifies the content type associated with the content and(ii) a path string that identifies the content associated with theaction; and displaying concurrently in a home screen on a display of theclient device a plurality of user selectable affordances, each of theaffordances being associated with one of the plurality of activitiesperformed with associated content.
 2. The method of claim 1, wherein theplurality of affordances includes at least two affordances associatedwith two distinct activities of the plurality of activities performed bytwo distinct applications.
 3. The method of claim 1, wherein for each ofthe plurality of activities, the action specification string and thecontent specification string are formatted according to Uniform ResourceIdentifier (URI) syntax that provides the consistent data structureformat for the action specification string and the content specificationstring across the different content types of the group.
 4. The method ofclaim 1, wherein displaying concurrently the plurality of userselectable affordances comprises displaying a chronologically orderedlist of a subset of the plurality of activities associated with theplurality of user selectable affordances.
 5. The method of claim 1,wherein displaying concurrently the plurality of user selectableaffordances comprises displaying a most recent list that includes a setof content items associated with the most recent activities amongst theplurality of activities.
 6. The method of claim 5, wherein the set ofcontent item includes a predefined number of content items.
 7. Themethod of claim 1, wherein displaying concurrently the plurality of userselectable affordances comprises displaying a most frequent list thatincludes a set of content items associated with the most frequentactivities amongst the plurality of activities.
 8. The method of claim7, wherein the set of content items includes a predefined number ofcontent items.
 9. The method of claim 1, wherein: the plurality of userselectable affordances comprises a plurality of thumbnails and theirrespective times of last access; and in accordance with the two distinctactivities of the plurality of activities performed by the two distinctapplications, the at least two affordances include (1) a first thumbnailassociated with a first action, a first content and a first timestampindicating a first time of last access, and (2) a second thumbnailassociated with a second action, a second content and a second timestampindicating a second time of last access.
 10. The method of claim 1,further comprising: displaying concurrently the plurality of userselectable affordances with a content bar including a plurality ofinformation display affordances, and wherein the plurality of userselectable affordances are displayed in response to a user selection ofone of the information display affordances in the content bar.
 11. Asystem, comprising: a hardware processor that: performs a plurality ofactivities, each of the plurality of activities being performed in arespective application with content associated with a content type,wherein each activity is associated with a timestamp and wherein eachactivity is described using a format including an action specificationstring specifying an action and a content specification stringspecifying content associated with the action; for each of the pluralityof activities performed by different applications, formats the actionspecification string and the content specification string according to adata structure format across different content types of the group,wherein the action specification string includes (i) an intent messagethat specifies an activity from the plurality of activities and (ii) anaction string that specifies the action and wherein the contentspecification string includes (i) a type string that specifies thecontent type associated with the content and (ii) a path string thatidentifies the content associated with the action; and displaysconcurrently in a home screen on a display of the client device aplurality of user selectable affordances, each of the affordances beingassociated with one of the plurality of activities performed withassociated content.
 12. The system of claim 11, wherein the plurality ofaffordances includes at least two affordances associated with twodistinct activities of the plurality of activities performed by twodistinct applications.
 13. The system of claim 11, wherein for each ofthe plurality of activities, the action specification string and thecontent specification string are formatted according to Uniform ResourceIdentifier (URI) syntax that provides the consistent data structureformat for the action specification string and the content specificationstring across the different content types of the group.
 14. The systemof claim 1, wherein displaying concurrently the plurality of userselectable affordances comprises displaying a chronologically orderedlist of a subset of the plurality of activities associated with theplurality of user selectable affordances.
 15. The system of claim 11,wherein displaying concurrently the plurality of user selectableaffordances comprises displaying a most recent list that includes a setof content items associated with the most recent activities amongst theplurality of activities.
 16. The system of claim 15, wherein the set ofcontent item includes a predefined number of content items.
 17. Thesystem of claim 11, wherein displaying concurrently the plurality ofuser selectable affordances comprises displaying a most frequent listthat includes a set of content items associated with the most frequentactivities amongst the plurality of activities.
 18. The system of claim17, wherein the set of content items includes a predefined number ofcontent items.
 19. The system of claim 11, wherein: the plurality ofuser selectable affordances comprises a plurality of thumbnails andtheir respective times of last access; and in accordance with the twodistinct activities of the plurality of activities performed by the twodistinct applications, the at least two affordances include (1) a firstthumbnail associated with a first action, a first content and a firsttimestamp indicating a first time of last access, and (2) a secondthumbnail associated with a second action, a second content and a secondtimestamp indicating a second time of last access.
 20. The system ofclaim 11, wherein the hardware processor further: displays concurrentlythe plurality of user selectable affordances with a content barincluding a plurality of information display affordances, and whereinthe plurality of user selectable affordances are displayed in responseto a user selection of one of the information display affordances in thecontent bar.
 21. A non-transitory computer readable storage mediumstoring one or more programs configured for execution by one or moreprocessors of a computer system, the one or more programs comprisinginstructions for: performing a plurality of activities, each of theplurality of activities being performed in a respective application withcontent associated with a content type, wherein each activity isassociated with a timestamp and wherein each activity is described usinga format including an action specification string specifying an actionand a content specification string specifying content associated withthe action; for each of the plurality of activities performed bydifferent applications, formatting the action specification string andthe content specification string according to a data structure formatacross different content types of the group, wherein the actionspecification string includes (i) an intent message that specifies anactivity from the plurality of activities and (ii) an action string thatspecifies the action and wherein the content specification stringincludes (i) a type string that specifies the content type associatedwith the content and (ii) a path string that identifies the contentassociated with the action; and displaying concurrently in a home screenon a display of the client device a plurality of user selectableaffordances, each of the affordances being associated with one of theplurality of activities performed with associated content.